package com.yjz.jvm.juc.线程.中断;

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class A {

    public static void main(String[] args) throws InterruptedException {
        Thread thread = new Thread(() -> {
            while (!Thread.currentThread().isInterrupted()) {  // 线程自己决定是否退出
                System.out.println("线程在运行...");
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {// 抛出异常之后，由于线程已经响应过中断，则会将中断标志位清空
                    System.out.println("线程被中断，退出循环...");
                    break;  // 线程决定退出
                }
            }
        });
        thread.start();

        Thread.sleep(2000);
        thread.interrupt(); // 发送中断请求，其实是给线程设置中断标志位，然后线程内部自己检查标志位然后再决定要不要针对中断进行处理
    }
}